package com.ruoyi.production_detail.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 生产管理工单子对象 erp_work_order_details
 * 
 * @author ruoyi
 * @date 2025-07-18
 */
public class ErpWorkOrderDetails extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 关联工单ID */
    private Long workOrderId;

    /** 料号 */
    @Excel(name = "料号")
    private String partNumber;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String materialName;

    /** 物料规格 */
    @Excel(name = "物料规格")
    private String materialSpec;

    /** 物料分类 */
    @Excel(name = "物料分类")
    private String materialCategory;

    /** 品名 */
    @Excel(name = "品名")
    private String productName;

    /** 图号 */
    @Excel(name = "图号")
    private String drawingNumber;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 表面处理 */
    @Excel(name = "表面处理")
    private String surfaceTreatment;

    /** 需求数量 */
    @Excel(name = "需求数量")
    private BigDecimal requiredQuantity;

    /** 已发数量 */
    @Excel(name = "已发数量")
    private BigDecimal issuedQuantity;

    /** 未发数量 */
    @Excel(name = "未发数量")
    private BigDecimal remainingQuantity;

    /** BOM标识号 */
    @Excel(name = "BOM标识号")
    private String bomIdentifier;

    /** 材质/品牌 */
    @Excel(name = "材质/品牌")
    private String materialBrand;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 创建时间 */
    private Date createdAt;

    /** 更新时间 */
    private Date updatedAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setWorkOrderId(Long workOrderId) 
    {
        this.workOrderId = workOrderId;
    }

    public Long getWorkOrderId() 
    {
        return workOrderId;
    }

    public void setPartNumber(String partNumber) 
    {
        this.partNumber = partNumber;
    }

    public String getPartNumber() 
    {
        return partNumber;
    }

    public void setMaterialName(String materialName) 
    {
        this.materialName = materialName;
    }

    public String getMaterialName() 
    {
        return materialName;
    }

    public void setMaterialSpec(String materialSpec) 
    {
        this.materialSpec = materialSpec;
    }

    public String getMaterialSpec() 
    {
        return materialSpec;
    }

    public void setMaterialCategory(String materialCategory) 
    {
        this.materialCategory = materialCategory;
    }

    public String getMaterialCategory() 
    {
        return materialCategory;
    }

    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }

    public void setDrawingNumber(String drawingNumber) 
    {
        this.drawingNumber = drawingNumber;
    }

    public String getDrawingNumber() 
    {
        return drawingNumber;
    }

    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }

    public void setSurfaceTreatment(String surfaceTreatment) 
    {
        this.surfaceTreatment = surfaceTreatment;
    }

    public String getSurfaceTreatment() 
    {
        return surfaceTreatment;
    }

    public void setRequiredQuantity(BigDecimal requiredQuantity) 
    {
        this.requiredQuantity = requiredQuantity;
    }

    public BigDecimal getRequiredQuantity() 
    {
        return requiredQuantity;
    }

    public void setIssuedQuantity(BigDecimal issuedQuantity) 
    {
        this.issuedQuantity = issuedQuantity;
    }

    public BigDecimal getIssuedQuantity() 
    {
        return issuedQuantity;
    }

    public void setRemainingQuantity(BigDecimal remainingQuantity) 
    {
        this.remainingQuantity = remainingQuantity;
    }

    public BigDecimal getRemainingQuantity() 
    {
        return remainingQuantity;
    }

    public void setBomIdentifier(String bomIdentifier) 
    {
        this.bomIdentifier = bomIdentifier;
    }

    public String getBomIdentifier() 
    {
        return bomIdentifier;
    }

    public void setMaterialBrand(String materialBrand) 
    {
        this.materialBrand = materialBrand;
    }

    public String getMaterialBrand() 
    {
        return materialBrand;
    }

    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("workOrderId", getWorkOrderId())
            .append("partNumber", getPartNumber())
            .append("materialName", getMaterialName())
            .append("materialSpec", getMaterialSpec())
            .append("materialCategory", getMaterialCategory())
            .append("productName", getProductName())
            .append("drawingNumber", getDrawingNumber())
            .append("unit", getUnit())
            .append("surfaceTreatment", getSurfaceTreatment())
            .append("requiredQuantity", getRequiredQuantity())
            .append("issuedQuantity", getIssuedQuantity())
            .append("remainingQuantity", getRemainingQuantity())
            .append("bomIdentifier", getBomIdentifier())
            .append("materialBrand", getMaterialBrand())
            .append("remarks", getRemarks())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
